{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import StandardScaler, OneHotEncoder\n",
    "from sklearn.compose import ColumnTransformer\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier\n",
    "from sklearn.metrics import classification_report, confusion_matrix, roc_auc_score\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. Generate a synthetic dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "company_investment_failure.csv generated successfully.\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(42)\n",
    "\n",
    "num_companies = 1000\n",
    "\n",
    "data = {\n",
    "    'CompanyID': range(1, num_companies + 1),\n",
    "    'Revenue': np.random.uniform(1e6, 1e9, num_companies),\n",
    "    'Debt': np.random.uniform(1e5, 5e8, num_companies),\n",
    "    'Employees': np.random.randint(10, 5000, num_companies),\n",
    "    'Industry': np.random.choice(['Tech', 'Finance', 'Manufacturing', 'Retail'], num_companies),\n",
    "    'Location': np.random.choice(['Urban', 'Suburban', 'Rural'], num_companies),\n",
    "    'InvestmentAmount': np.random.uniform(1e5, 1e8, num_companies),\n",
    "    'InvestmentDuration': np.random.randint(1, 10, num_companies),\n",
    "    'Failure': np.random.choice([0, 1], num_companies, p=[0.9, 0.1])  # 10% failure rate\n",
    "}\n",
    "\n",
    "df = pd.DataFrame(data)\n",
    "df.to_csv('company_investment_failure.csv', index=False)\n",
    "\n",
    "print(\"company_investment_failure.csv generated successfully.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2. Load the dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.read_csv('company_investment_failure.csv')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.1 Remove CompanyID before separating columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = df.drop('CompanyID', axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3. Data Preprocessing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "numerical_cols = df.select_dtypes(include=['int64', 'float64']).columns.tolist()\n",
    "categorical_cols = df.select_dtypes(include=['object']).columns.tolist()\n",
    "\n",
    "# 3.1 Check if 'Failure' exists before removing\n",
    "if 'Failure' in numerical_cols:\n",
    "    numerical_cols.remove('Failure')\n",
    "if 'Failure' in categorical_cols:\n",
    "    categorical_cols.remove('Failure')\n",
    "\n",
    "numerical_transformer = Pipeline(steps=[\n",
    "    ('scaler', StandardScaler())\n",
    "])\n",
    "\n",
    "categorical_transformer = Pipeline(steps=[\n",
    "    ('onehot', OneHotEncoder(handle_unknown='ignore'))\n",
    "])\n",
    "\n",
    "preprocessor = ColumnTransformer(\n",
    "    transformers=[\n",
    "        ('num', numerical_transformer, numerical_cols),\n",
    "        ('cat', categorical_transformer, categorical_cols)\n",
    "    ])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. Split the data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "X = df.drop('Failure', axis=1)\n",
    "y = df['Failure']\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5. Model Training and Evaluation (Logistic Regression)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Logistic Regression Results:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.94      1.00      0.97       188\n",
      "           1       0.00      0.00      0.00        12\n",
      "\n",
      "    accuracy                           0.94       200\n",
      "   macro avg       0.47      0.50      0.48       200\n",
      "weighted avg       0.88      0.94      0.91       200\n",
      "\n",
      "[[188   0]\n",
      " [ 12   0]]\n",
      "ROC AUC: 0.412677304964539\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\sempe\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\sklearn\\metrics\\_classification.py:1469: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n",
      "C:\\Users\\sempe\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\sklearn\\metrics\\_classification.py:1469: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n",
      "C:\\Users\\sempe\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\sklearn\\metrics\\_classification.py:1469: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n"
     ]
    }
   ],
   "source": [
    "model_lr = Pipeline(steps=[('preprocessor', preprocessor),\n",
    "                           ('classifier', LogisticRegression(solver='liblinear', random_state=42))])\n",
    "model_lr.fit(X_train, y_train)\n",
    "y_pred_lr = model_lr.predict(X_test)\n",
    "y_pred_proba_lr = model_lr.predict_proba(X_test)[:, 1]\n",
    "\n",
    "print(\"\\nLogistic Regression Results:\")\n",
    "print(classification_report(y_test, y_pred_lr))\n",
    "print(confusion_matrix(y_test, y_pred_lr))\n",
    "print(f\"ROC AUC: {roc_auc_score(y_test, y_pred_proba_lr)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 6. Model Training and Evaluation (Random Forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Random Forest Results:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.94      1.00      0.97       188\n",
      "           1       0.00      0.00      0.00        12\n",
      "\n",
      "    accuracy                           0.94       200\n",
      "   macro avg       0.47      0.50      0.48       200\n",
      "weighted avg       0.88      0.94      0.91       200\n",
      "\n",
      "[[188   0]\n",
      " [ 12   0]]\n",
      "ROC AUC: 0.3900709219858156\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\sempe\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\sklearn\\metrics\\_classification.py:1469: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n",
      "C:\\Users\\sempe\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\sklearn\\metrics\\_classification.py:1469: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n",
      "C:\\Users\\sempe\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\sklearn\\metrics\\_classification.py:1469: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n"
     ]
    }
   ],
   "source": [
    "model_rf = Pipeline(steps=[('preprocessor', preprocessor),\n",
    "                           ('classifier', RandomForestClassifier(random_state=42))])\n",
    "model_rf.fit(X_train, y_train)\n",
    "y_pred_rf = model_rf.predict(X_test)\n",
    "y_pred_proba_rf = model_rf.predict_proba(X_test)[:, 1]\n",
    "\n",
    "print(\"\\nRandom Forest Results:\")\n",
    "print(classification_report(y_test, y_pred_rf))\n",
    "print(confusion_matrix(y_test, y_pred_rf))\n",
    "print(f\"ROC AUC: {roc_auc_score(y_test, y_pred_proba_rf)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 7. Model Training and Evaluation (Gradient Boosting)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Gradient Boosting Results:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.94      0.97      0.96       188\n",
      "           1       0.00      0.00      0.00        12\n",
      "\n",
      "    accuracy                           0.92       200\n",
      "   macro avg       0.47      0.49      0.48       200\n",
      "weighted avg       0.88      0.92      0.90       200\n",
      "\n",
      "[[183   5]\n",
      " [ 12   0]]\n",
      "ROC AUC: 0.3417553191489362\n"
     ]
    }
   ],
   "source": [
    "model_gb = Pipeline(steps=[('preprocessor', preprocessor),\n",
    "                           ('classifier', GradientBoostingClassifier(random_state=42))])\n",
    "model_gb.fit(X_train, y_train)\n",
    "y_pred_gb = model_gb.predict(X_test)\n",
    "y_pred_proba_gb = model_gb.predict_proba(X_test)[:, 1]\n",
    "\n",
    "print(\"\\nGradient Boosting Results:\")\n",
    "print(classification_report(y_test, y_pred_gb))\n",
    "print(confusion_matrix(y_test, y_pred_gb))\n",
    "print(f\"ROC AUC: {roc_auc_score(y_test, y_pred_proba_gb)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 8. Feature Importance (Random Forest)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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hipfvryWL1+ujz/+WB07djSHv2rVqsne3l6JiYny9fW1mMqXL29uw8PDQz179tRHH32kOXPm6N1335Uk2dnZSZL5B5S7UadOHR0/flylSpXKUoubm1uu27Gzs8t1Pf/++6/effddNWnSxPx5e3h4WHzm169f1+HDh+/Y1p49e1SxYkWNHj1a9erVk5+fn/nOkLzUFhAQoIMHD+rSpUvmZbt37zY/igAAAAAAhSVfAf7UqVMKCgrKstze3t4i+NwNo9Go+vXra9q0aTp69Kh27Nhh8YyzNenatasWLlyozZs3m2+fl24MujZixAgNGzZMS5Ys0cmTJ/Xf//5X8+bN05IlSyRJ48aN0+rVq3XixAn99NNPWrt2rQICAiTdGNXdaDRqw4YN+uOPP5SSkpLvGrt166aSJUvqueee065du3Tq1Clt375dQ4YMMQ90lxve3t7auXOnfvvtN/35558W65KTk3X27FkdP35ccXFxCg4O1p9//qno6GjzNi1atNC6deu0bt06/fzzz3r55Zd1/vz5Ox7Xz89PiYmJiouL08mTJ/X2229r1apVWWo7deqU4uPj9eeffyo9PT3b6+Dg4KCePXvq8OHD2rZtm1599VW99NJL5uffAQAAAKAw5CvAV6pUKdve8A0bNpjDZUFYvHixrl27prp162ro0KGaPHlygbV9P3Xr1k1HjhxR2bJlzYPtZZo0aZLGjh2rqVOnKiAgQCEhIVq3bp35FXF2dnaKiIhQYGCgmjRpIhsbG8XFxUm68Yz922+/rUWLFsnLyytPjy7cytHRUTt37lSFChX0wgsvKCAgQH369NHly5fl6uqa63YmTpyohIQE+fj4WNx6L0lVqlSRl5eX6tatq2nTpunJJ5/U4cOHVa1aNfM2vXv3Vs+ePdWjRw81bdpUlStXVvPmze943Hbt2mnYsGEaPHiwateurT179phHp8/UoUMHhYSEqHnz5vLw8NAnn3yS7XXYuHGj/v77bz322GN68cUX1bJlS82fPz/X1wAAAAAA7gWD6dYHjnPh/fffV2RkpGbOnKk+ffro/fff18mTJzV16lS9//776ty5872oFXhopKamys3NTbVeXSgbe2NhlwMABW7/9B6FXQIAAFYhMxukpKTcsfM0X4PY9e3bV0ajUWPGjFFaWpq6du0qLy8vzZ07l/AOAAAAAMA9kOcAf+3a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zs5OixcvlqOjo6pXr66JEydq5MiRmjRpkooUyf1vTl27dlWvXr3M87/++qskafz48Xrqqack3Qji5cqV06pVqxQaGnrH650pMDBQ48ePlyT5+flp/vz52rp1q7ndW0VEROj11183z6emphLiAQAAAOSJVfbAHz16VOnp6WrZsmW265cvX67g4GB5enrK2dlZY8aMUWJi4n2u8oajR48qODjYYllwcLCOHj0qSYqPj1e5cuXM4f1W169f16RJk1SzZk25u7vL2dlZGzduzPP55FTH8ePHLZ5RDwwMNP/bYDDI09NTycnJd2zfxsZGMTEx+t///qeoqCiVLVtWU6ZMMd/pkBe1atWSo6Ojeb5Bgwa6ePGizpw5k6d26tWrl+3yBg0amP/t7u6uKlWqmD+P3F7vm6+TJJUpU+a218ne3l6urq4WEwAAAADkhVUG+MxnqrOzd+9edevWTa1bt9batWt14MABjR49+oEdCf125yJJ06dP19y5czVq1Cht27ZN8fHxatWq1T07n6JFi1rMGwwGZWRk5Hr/smXL6qWXXtL8+fP1008/6fLly1q4cKEkqUiRIjKZTBbb52dwudy24+TklOe2c3u97/Y6AQAAAEBeWWWA9/Pzk9Fo1NatW7Os27NnjypWrKjRo0erXr168vPz0+nTpy22uZ8jowcEBGj37t0Wy3bv3q1q1apJutGT+7///U+//PJLtvvv3r1bzz33nLp3765atWqpcuXKWbbNzfnkVIe/v7/5efuCVrx4cZUpU0aXLl2SJHl4eOjs2bMW4Ts+Pj7LfgcPHtS///5rnv/222/l7OxsvuXcw8PDolc/NTVVp06dynVd3377rfnf//zzj3755RcFBARIyt31BgAAAIDCYJXPwDs4OGjUqFEKDw+XnZ2dgoODde7cOf3000/y8/NTYmKi4uLi9Nhjj2ndunVatWqVxf7e3t46deqU+fZ1FxcX2dvb31VNv/32W5YwWrFiRY0cOVKhoaEKCgrSk08+qTVr1mjlypXasmWLJKlp06Zq0qSJOnTooFmzZsnX11c///yzDAaDQkJC5Ofnp88++0x79uxR8eLFNWvWLP3xxx/mHwAyz+e7775TQkKCnJ2d5e7unqW+4cOH67HHHtOkSZPUqVMn7d27V/Pnz9eCBQvu6rwzLVq0SPHx8Xr++efl4+Ojy5cva+nSpfrp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",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "if 'RandomForestClassifier' in str(model_rf.named_steps['classifier']):\n",
    "  try:\n",
    "      feature_names = model_rf.named_steps['preprocessor'].get_feature_names_out()\n",
    "      importances = model_rf.named_steps['classifier'].feature_importances_\n",
    "      feature_importance = pd.Series(importances, index=feature_names)\n",
    "      feature_importance = feature_importance.sort_values(ascending=False)\n",
    "\n",
    "      plt.figure(figsize=(10, 6))\n",
    "      sns.barplot(x=feature_importance[:10], y=feature_importance.index[:10])\n",
    "      plt.title('Top 10 Feature Importances (Random Forest)')\n",
    "      plt.xlabel('Importance')\n",
    "      plt.ylabel('Feature')\n",
    "      plt.show()\n",
    "\n",
    "  except AttributeError:\n",
    "    print(\"Feature importance only available for tree-based models.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 9. Example Prediction (using Gradient Boosting)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Example Prediction (Gradient Boosting): Investment Failure = 0\n"
     ]
    }
   ],
   "source": [
    "example_company = X_test.iloc[[0]]\n",
    "prediction = model_gb.predict(example_company)\n",
    "\n",
    "print(f\"\\nExample Prediction (Gradient Boosting): Investment Failure = {prediction[0]}\")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
